From f8253f9f488a40360cbd57d2d2efbf2ebc0671a3 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Fri, 31 Mar 2006 13:51:19 +0100 Subject: [PATCH] Currently, xm & xend allow an XAUTHORITY to be specified in the config file. If that is not specified, then xm will pass the XAUTHORITY environment variable back to xend instead. This is not sufficient, since it is possible that XAUTHORITY is not set at all. This doesn't cause a problem for most X apps, because xlib will use the fall-back of $HOME/.Xauthority. But the viewer is started from xend, which almost certainly doesn't have a reasonable HOME variable. We fix this by always passing some value for XAUTHORITY. In order of preference, that value is: 1. Use the value from the config file, if specified. 2. Use the value from the XAUTHORITY env variable, if set. 3. Use $HOME/.Xauthority, if HOME is set. 4. Look up the user's home directory via getpwuid, and append "/.Xauthority" Signed-off-by: Charles Coffing --- tools/python/xen/xm/create.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index adfd6f1f42..2933af5e4f 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -864,7 +864,14 @@ def parseCommandLine(argv): gopts.vals.display = os.getenv("DISPLAY") if not gopts.vals.xauthority: - gopts.vals.xauthority = os.getenv("XAUTHORITY") + xauth = os.getenv("XAUTHORITY") + if not xauth: + home = os.getenv("HOME") + if not home: + import posix, pwd + home = pwd.getpwuid(posix.getuid())[5] + xauth = home + "/.Xauthority" + gopts.vals.xauthority = xauth # Process remaining args as config variables. for arg in args: -- 2.30.2